
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>generator函数</title>
</head>
<body>
    

    <script>
        // Generator 函数是 ES6 提供的一种异步编程解决方案，语法行为与传统函数完全不同.  
        // yield表达式，定义不同的内部状态.
        // generator  生成器

        // 普通函数   一路到底   
        
        // 懒执行    generator函数   懒加载  v-lazy-load  插件  踹一脚走一步  next()

        // function *show() {
        //     alert("aaa")
        //     yield
        //     alert("bbb")
        // }

        // console.log( show());
        // let genden = show();
        // genden.next()
        // // genden.next()


        function *fn() {
            yield 1;//1 代表 $.ajax()-请求一个接口数据
            yield 2;
            yield 3;
            yield 4;
            yield 5;
            yield 6;
            return 7
        }
        

        let gen = fn()
        console.log(gen);
        console.log(gen.next());
        console.log(gen.next());
        console.log(gen.next());
        console.log(gen.next());
        console.log(gen.next());
        console.log(gen.next());
        console.log(gen.next());
        
       
         // 斐波那契数列  >1000   1+2+3+...n
        // 1 1 1 2 3 4 6 9 13 ...

        // 1 1 2 3 5 8 .... 大于1000时候 值等于多少
        function *fabonaqie() {
            let [prev,curr] = [0,1]
            for (; ; ) {
                yield curr;
                [prev,curr] = [curr,prev+curr]
            }   
        }

        for (const i of fabonaqie()) {
            if (i>1000) {
                break;
            }
            console.log(i);
            
        }

        


    </script>
</body>
</html>